com={};
com.mexcad={};
com.mexcad.segCredito={};
com.mexcad.segCredito.jsonrpc=null;
com.mexcad.segCredito.formCliente=null;
com.mexcad.segCredito.listModel=null;
com.mexcad.segCredito.listModelClientes=null;
com.mexcad.segCredito.listStatus=null;
com.mexcad.segCredito.gerente=null;
com.mexcad.segCredito.winDetalle=null;
com.mexcad.segCredito.storeEjecutivos=null;
com.mexcad.segCredito.idCredito=null;
com.mexcad.segCredito.banderaValidacion=0;
com.mexcad.segCredito.idRenta=0;
com.mexcad.segCredito.numRenta=0;
com.mexcad.segCredito.montoAnticipado=0;

var dsRentas;

var  credito =null;
var gerente=null;
var arrayData;
var ejecutivo;




com.mexcad.segCredito.printException=function(excep){
	alert("ERROR INTERNO\nArchivo:\tSeguimientoCredito.jsp\nSeguimientoCredito.js.\n\nMensaje:\n" + excep.message);
};


com.mexcad.segCredito.initData=function() {

   try{
   		com.mexcad.segCredito.jsonrpc = new JSONRpcClient("../JSON-RPC");
   		com.mexcad.segCredito.cargaRentasIniciales();
   }catch(e){
   		com.mexcad.segCredito.printException(e);
   	
   }
	
};

com.mexcad.segCredito.cargaRentasIniciales=function(){
	//se obtienen los datos de la tabla de partidas
		arrayData = new Array();
		return arrayData;
};

com.mexcad.segCredito.cargaCredito=function(){
	//se obtienen los datos de la tabla de partidas
	try {
		// aqui se conecta a hibernate para traer los lugares de los eventos del
		
		//solicitud = com.mexcad.segCredito.jsonrpc.DelegateConnectors.generaInstanciaSolicitud();
		credito  = com.mexcad.segCredito.jsonrpc.DelegateConnectors.getCreditoPorId(parseInt(com.mexcad.segCredito.idCredito));
		//alert(solicitud);
		
		arrayData=this.cargaRentas();

	} catch (excep) {
		this.printException(excep);
	}
	
};

com.mexcad.segCredito.generaHeader=function(){
   if(credito !=null ){
   	var esquemaCredito = com.mexcad.segCredito.jsonrpc.DelegateConnectors.getEsquemaCreditoByid(credito.ckCredito.idEsquemaCredito);
    var tipoCredito=     com.mexcad.segCredito.jsonrpc.DelegateConnectors.getSolicitudByid(credito.ckCredito.idTipoSolicitud);
   	ejecutivo= com.mexcad.segCredito.jsonrpc.DelegateConnectors.getEjecutivoPorId(credito.idEjecutivo);
   	var strPlazo = com.mexcad.segCredito.jsonrpc.DelegateConnectors.getPlazoSolicitadoPorId(credito.idPeriodoSolicitado);
   	var statusStr = com.mexcad.segCredito.jsonrpc.DelegateConnectors.getEstatusPorId(credito.idEstatus);
   	var tasaStr = credito.tasaBase;
   	
   	
   	
   	
   	
   	var header='<table width="660" border="0" cellpadding="1" cellspacing="1" style="text-shadow:#999;"  >\n';
	var footer='</table>';
	var body='<tr class="Nones"><td width="130"  align="right" style="background-color:#2383A7;color:#FFFFFF;font-size: 12px;"><b>Solicitante:</b></td>\n';
	body+='<td width="420" style="font-size: 12px;"  align="left" ><b>&nbsp;&nbsp;'+credito.apellidoPaterno+' '+credito.apellidoMaterno+' '+credito.nombres+'</b></td></tr>\n';
	
    body+='<tr class="Nones"><td width="130"  align="right" style="background-color:#2383A7;color:#FFFFFF;font-size: 12px;"><b>Tipo de cr�dito:</b></td>\n'; 
    body+='<td width="420" style="font-size: 12px;" >&nbsp;&nbsp;'+tipoCredito+'</td></tr>\n';    

    body+='<tr class="Nones"><td width="130"  align="right" style="background-color:#2383A7;color:#FFFFFF;font-size: 12px;"><b>Esquema de cr�dito:</b></td>\n'; 
    body+='<td width="420" style="font-size: 12px;" >&nbsp;&nbsp;'+esquemaCredito+'</td></tr>\n';    
    
    body+='<tr class="Pares"><td width="130"  align="right" style="background-color:#2383A7;color:#FFFFFF;font-size: 12px;"><b>Ejecutivo:</b></td>\n'; 
    body+='<td width="420" style="font-size: 12px;" >&nbsp;&nbsp;';
    if(ejecutivo!= null){
    	body+=ejecutivo.apellidoPaterno+' '+ejecutivo.apellidoMaterno+' '+ejecutivo.nombres
    }
    body+='</td></tr>\n';    

    body+='<tr class="Nones"><td width="130"  align="right" style="background-color:#2383A7;color:#FFFFFF;font-size: 12px;"><b>Fecha de creaci�n:</b></td>\n'; 
    body+='<td width="420" ><table width="400" border="0" cellpadding="0" cellspacing="0"> <tr>\n'; //&nbsp;&nbsp;'+credito.fechaCreacionStr+'</td></tr>\n';    
    body+='<td width="100" style="font-size: 12px;" >&nbsp;'+credito.fechaCreacionStr+'</td>\n';
    
    body+='<td width="170"  align="right" style="background-color:#2383A7;color:#FFFFFF;font-size: 12px;"><b>Fecha inicio:</b> </td>\n';
    body+='<td width="140" style="font-size: 12px;" >&nbsp;'+credito.fechaInicialStr+'</td>\n';
    
    body+='<td width="150"  align="right" style="background-color:#2383A7;color:#FFFFFF;font-size: 12px;"><b>Fecha fin:</b> </td>\n';
    body+='<td width="80" style="font-size: 12px;" >&nbsp;'+credito.fechaFinalStr+'</td>\n';
    body+='</tr></table></td></tr>\n';
    
    body+='<tr class="Pares"><td width="130"  align="right" style="background-color:#2383A7;color:#FFFFFF;font-size: 12px;"><b>Monto:</b></td>\n'; 
    body+='<td width="420" ><table width="400" border="0" cellpadding="0" cellspacing="0"><tr>\n';
    body+='<td width="140" style="font-size: 12px;" >&nbsp;'+formateaMoneda(credito.montoTotal)+'</td>\n';
 	
    
 	body+='<td width="80"  align="right" style="background-color:#2383A7;color:#FFFFFF;font-size: 12px;"><b>Plazo:</b> </td>\n';
    body+='<td width="140" style="font-size: 12px;" >&nbsp;'+credito.plazoSolicitado+ ' ' +strPlazo+'</td>\n';
    
    body+='<td width="80"  align="right" style="background-color:#2383A7;color:#FFFFFF;font-size: 12px;"><b>Tasa: </b></td>\n';
    body+='<td width="140" style="font-size: 12px;"	>&nbsp;'+tasaStr+' anual</td>\n';
    body+='</tr></table></td></tr>\n';
    
    body+='<tr class="Pares"><td width="130"  align="right" style="background-color:#2383A7;color:#FFFFFF;font-size: 12px;"><b>Monto restante:</b></td>\n'; 
    body+='<td width="420" style="font-size: 12px;" >&nbsp;&nbsp;'+formateaMoneda(credito.montoRestante)+'</td></tr>\n';    

    
   	return (header+body+footer);
   
   }
};

com.mexcad.segCredito.cargaRentas=function(){
	//se obtienen los datos de la tabla de partidas
	try {
		// aqui se conecta a hibernate para traer los lugares de los eventos del
		var lista  = com.mexcad.segCredito.jsonrpc.DelegateConnectors.getAllRentasSaldadasUltimaActivaByCredito(parseInt(credito.ckCredito.idCredito)).list;
		var numReg = lista.length;		
		arrayData = new Array();
		
		for (var i = 0; i < numReg; i++) {
			var oReg = lista[i];
			
		arrayData[i] = new Array(oReg.ckRenta.idRenta , 
								 oReg.ckRenta.idCredito,
								 oReg.idEstatus,
									oReg.numRenta,
									oReg.fechaAplicacionStr,
									oReg.fechaExigibleStr,
									oReg.fechaRegistroStr,
									oReg.idTipoRenta,
									oReg.descripcion,
									oReg.cargo,
									oReg.abono,
									oReg.saldo );
		
									
		}
		
		
		
       if(dsRentas != null){ 
	   	dsRentas.removeAll();
       	dsRentas.loadData(arrayData);
       }
	   return arrayData;

	} catch (excep) {
		this.printException(excep);
	}
	
};


com.mexcad.segCredito.eliminaRenta=function(selectecRow){

	com.mexcad.segCredito.jsonrpc.DelegateConnectors.eliminaRenta(selectecRow.data.idRenta);
	

	
	dsRentas.removeAll();
	
    dsRentas.loadData(com.mexcad.segCredito.cargaRentas());
			
	
	
};


com.mexcad.segCredito.ejecutaPagoRenta=function(selectecRow, monto){

	var fechaStr   = $('fecha').value;
	
	if(fechaStr == ''){
		alert('Campo de fecha invalido');
		return;
	}
	com.mexcad.segCredito.jsonrpc.DelegateConnectors.ejecutaPagoRenta(selectecRow.data.idRenta,  monto, fechaStr);
	

	Ext.getCmp('montoPago').setValue('0.00');
	dsRentas.removeAll();
	
    dsRentas.loadData(com.mexcad.segCredito.cargaRentas());
			
	
	
};

com.mexcad.segCredito.ejecutaAgregarCargo=function(selectecRow, monto, montoImpuesto){

	var fechaStr   = $('fecha').value;
	if(fechaStr == ''){
		alert('Campo de fecha invalido');
		return;
	}
	
	com.mexcad.segCredito.jsonrpc.DelegateConnectors.ejecutaAgregarCargo(selectecRow.data.idRenta,  monto,montoImpuesto, fechaStr);
	

	Ext.getCmp('montoPago').setValue('0.00');
	dsRentas.removeAll();
	
    dsRentas.loadData(com.mexcad.segCredito.cargaRentas());
			
	
	
};

com.mexcad.segCredito.reversarPago=function(selectecRow, monto){

	
	
	com.mexcad.segCredito.jsonrpc.DelegateConnectors.reversarPago(selectecRow.data.idRenta,  com.mexcad.segCredito.idCredito);
	

	Ext.getCmp('montoPago').setValue('0.00');
	dsRentas.removeAll();
	
    dsRentas.loadData(com.mexcad.segCredito.cargaRentas());
			
	
	
};




com.mexcad.segCredito.ejecutaPagoAnticipado=function( monto){

	var fechaStr   = $('fecha').value;
	if(fechaStr == ''){
		alert('Campo de fecha invalido');
		return;
	}
	alert('pago ejecutado...');
	com.mexcad.segCredito.jsonrpc.DelegateConnectors.ejecutaPagoAnticipado(com.mexcad.segCredito.idCredito,  monto, fechaStr);

	Ext.getCmp('montoPago').setValue('0.00');
	dsRentas.removeAll();
	
    dsRentas.loadData(com.mexcad.segCredito.cargaRentas());
			
	
	
};				             	    		
				   		



com.mexcad.segCredito.liberarDeposito=function(){
	var subject= ejecutivo.apellidoPaterno+' '+ejecutivo.apellidoMaterno+' '+ejecutivo.nombres+ ' Envío Cotización';
	var mensaje='Cotización monto: '+solicitud.montoSolicitado;
	try{
		com.mexcad.segCredito.jsonrpc.DelegateConnectors.autorizaCredito(parseInt(solicitud.cksolicitud.idSolicitud));
		window.location='./seguimientoSolicitud.jsp?identificador='+solicitud.cksolicitud.idSolicitud;
	} catch (excep) {
		this.printException(excep);
	}
	//alert(':::'+ejecutivo.email+', '+subject+', '+mensaje);
	/* com.mexcad.segCredito.jsonrpc.DelegateConnectors.enviaMail(ejecutivo.email,subject,mensaje );
	
				var sID = Math.round(Math.random() * 10000000000);
				var winX = screen.availWidth;
				var winY = screen.availHeight; 
				var HWin = winX;
				var WWin = winY;
				var Top = ((winY - HWin) <= 0) ? 0 : ((winY - HWin) / 2);
				var Left = ((winX - WWin) <= 0) ? 0 : ((winX - WWin) / 2);
	

				var URL = "..//ContratoReportServlet?idSolicitud=" + solicitud.cksolicitud.idSolicitud+"&idCliente="+solicitud.cksolicitud.idCliente+"&idGerente="+gerente+"&fechaCreacion=alguna&plazoSolicitado="+solicitud.plazoSolicitado+"&nombresSolicitante="+solicitud.nombresSolicitante;
				var winFeatures = "center=yes,resizable=1,scrollbars=0,toolbar=0,location=0,directories=0,menubar=0,status=0,top="
						+ Top
						+ ",left="
						+ Left
						+ ",screenX="
						+ Left
						+ ",screenY="
						+ Top
						+ ",width="
						+ WWin
						+ ",height="
						+ HWin;
				window.open(URL, sID, winFeatures);
				
				location='./seguimientoSolicitud.jsp?identificador='+solicitud.cksolicitud.idSolicitud;
*/
};

com.mexcad.segCredito.muestraCargosyPagos=function(id_Credito,record){
	
	
	
	
	var header='<table width="690" border="0" cellpadding="0" cellspacing="0" style="text-shadow:#999;"  >\n';
	var footer='</table>';
	var htmlStr='';//'<tr class="Nones" style="background-color:#2383A7;color:#FFFFFF;font-size: 12px;"><td width="130"  align="center" ><b>Num. Pago</b></td><td width="150"  align="center" ><b>Tipo</b></td><td width="150"  align="center" ><b>Monto</b></td><td width="80"  align="center" ><b>Fecha</b></td></tr>\n';
	
	try {
		// aqui se conecta a hibernate para traer los lugares de los eventos del
		var lista  = com.mexcad.segCredito.jsonrpc.DelegateConnectors.getCargoPagoByRentaCredito(id_Credito,record.data.idRenta).list;
		var numReg = lista.length;		
		arrayData = new Array();
		
		if(numReg == 0){
			return '';
		}
		
		for (var i = 0; i < numReg; i++) {
			var oReg = lista[i];
			var montoStr  =  formateaMoneda(oReg.monto);
			var tipoPago=(oReg.esPago==true)?'PAGO':'CARGO';
			if(oReg.idEstatus == -2){
			//	htmlStr+='<tr style="text-shadow:#999;background-color:#DDBBBB">';
				tipoPago='REVERSADO';
			//	htmlStr+='<del>';
			}
			if(i % 2){
				htmlStr+='<tr style="text-shadow:#999;background-color:#DDEEEE">';
			}else{
				htmlStr+='<tr style="text-shadow:#999;background-color:#EEEEEE">';
			}
			htmlStr+='<td width="40"></td>';
			htmlStr+='<td width="80">'+oReg.fechaRegistroStr+'</td>';
			htmlStr+='<td width="80"></td>';
			htmlStr+='<td width="85">'+tipoPago+'</td>';
			if(oReg.esPago){
				htmlStr+='<td width="70"></td>';
				htmlStr+='<td width="70">';
				  if(oReg.idEstatus == -2){
				  	htmlStr+='<del>';
				  }
				  htmlStr+=formateaMoneda(oReg.abono);
				  if(oReg.idEstatus == -2){
				  	htmlStr+='</del>';
				  }
				htmlStr+='</td>';
			
			}else{
			
				htmlStr+='<td width="70">'+formateaMoneda(oReg.cargo)+'</td>';
				htmlStr+='<td width="70"></td>';
			}
			if(oReg.idEstatus != -2){
				htmlStr+='<td width="70">'+formateaMoneda(oReg.saldo) +'</td>';
			}else{
				htmlStr+='<td width="70">'+''+'</td>';
			}
			htmlStr+='</tr>';
		/*	if(oReg.idEstatus == -2){
				htmlStr+='</del>';
			}
			*/
		}
		
	
		
      
	   	return header+htmlStr+footer;

	} catch (excep) {
		this.printException(excep);
	}
	
	
	
	
};			
			
	
Ext.onReady(function(){

Ext.QuickTips.init();
com.mexcad.segCredito.initData();
com.mexcad.segCredito.idCredito=gup('identificador');

com.mexcad.segCredito.cargaCredito();

    // turn on validation errors beside the field globally
    Ext.form.Field.prototype.msgTarget = 'side';


		widthLabel =170;
		
	var panelSuperior = new Ext.FormPanel({
        labelWidth: 75, // label settings here cascade unless overridden
      	id:'formSolicitudes',
        frame:true,
      //  title: 'Seguimiento de solicitud',
        bodyStyle:'padding:5px 5px 0',
        width: 700,

        items: [{	id : 'datosGenerales',
				    border:true,
				    //autoHeight:true,
					layout:'table',
					layoutConfig:{columns: 2},
					defaults:{bodyStyle:'padding:2px 0px 0;', border:false},
					items:[{
					   		html:'<div id="header" style="font:\'Comic Sans MS\', cursive;"> </div>',
							width:700,
					   		bodyStyle:funExtJS.styleFONT+'text-align:left;padding:0px 0px 0;'
						   },{
					   		html:'',
							width:700,
					   		bodyStyle:funExtJS.styleFONT+'text-align:left;padding:0px 0px 0;'
						   } ]
						
					
				}]
    });
	
    
   var panelCentral = new Ext.FormPanel({
        labelWidth: 75,
        border:false,
       	width:700,
		height:75,

        items: {
            xtype:'tabpanel',
            activeTab: 0,
            defaults:{autoHeight:true, bodyStyle:'padding:10px'}, 
        	layoutConfig : {columns : 7},
            items:[{
                title:'Pagos',
                layout:'table',
                border:false,
               height:75,width: 650,

                defaults: {border:false},
//                layoutConfig : {columns : 7},
                items: [{
							width:60,
						   	html: ' monto: $',
						   	bodyStyle:funExtJS.styleFONT+'text-align:center;padding:0px 0px 0;'
						   
						},{
							layout: 'form',
							width:100,
					   		items: [new Ext.form.TextField({hideLabel: true, width:90, allowBlank : true, style:'text-transform:uppercase;', id:'montoPago',
					   			selectOnFocus:true,
					   			value:'0.00',
					   			listeners:{
											blur :function(o){
											//  if(storeClaves.getCount()>0){
												formateaImporteMoneda('montoPago','CAMPO');
											//	recordData.data.enero= 
												
											//  }
											}
								}
							})]
						},{
						   	html: 'Fecha de aplicaci�n: ',
						   	width:110,
						   	bodyStyle:funExtJS.styleFONT+'text-align:left;padding:0px 0px 0;'
						},{
							xtype: 'datefield',
							name: 'fecha',
							id: 'fecha',
							value:com.mexcad.segCredito.jsonrpc.DelegateConnectors.getCurrentDateStr(),
							width:95,
							hideLabel: true,
							format :'d/m/Y',
							readOnly:false,
							allowBlank : true,
							listeners:{
								blur :function(o){
									
								}
							}
						},{
						   	html: 'pago anticipado: ',
						   	width:120,
						   	bodyStyle:funExtJS.styleFONT+'text-align:right;padding:0px 0px 0;'
						},{
							layout: 'form',
							width:50,
					   		items: [new Ext.form.Checkbox({hideLabel: true, width:40, id:'pagoAnticipado',
					   		//new Ext.form.TextField({hideLabel: true, width:30, value:com.draicon.afectacion.getSectorActivo(), allowBlank : false, blankText : 'Ingrese El c�digo del sector', id:'sectorAfectacion',
					   			selectOnFocus:true,
					   			listeners:{
									 check  :function(o, val){
										
										if(Ext.getCmp('pagoAnticipado').getValue()){
											Ext.getCmp('btnPagoAnticipado').setDisabled(false);
											Ext.getCmp('btnPagarRenta').setDisabled(true);
											Ext.getCmp('btnCargo').setDisabled(true);
	
											
											com.mexcad.segCredito.montoAnticipado=com.mexcad.segCredito.jsonrpc.DelegateConnectors.getMontoPagoAnticipadoByCredito(com.mexcad.segCredito.idCredito);
											Ext.getCmp('montoPago').setValue(formateaMoneda(com.mexcad.segCredito.montoAnticipado));
	    							//		formateaImporteMoneda('montoPago','CAMPO');
											Ext.getCmp('montoPago').setDisabled(true);
											$('mensajeCredito').innerHTML=formateaMoneda(com.mexcad.segCredito.montoAnticipado);
											
										}else{
											Ext.getCmp('btnPagoAnticipado').setDisabled(true);
											Ext.getCmp('btnPagarRenta').setDisabled(false);
											Ext.getCmp('btnCargo').setDisabled(false);
											Ext.getCmp('montoPago').setValue('0.00');
											Ext.getCmp('montoPago').setDisabled(false);
											$('mensajeCredito').innerHTML='';
										}
										
										
										
										
									}
								}
							})]
						},{
						   html:'<div id="mensajeCredito" style="color: #0000FF; font-size: 10pt;text-align:letf"></div>',
							width:100,
						   	bodyStyle:funExtJS.styleFONT+'text-align:left;padding:0px 0px 0;'
						},{
						   	html: '',
						   	width:50,
						   	bodyStyle:funExtJS.styleFONT+'text-align:left;padding:0px 0px 0;'
						} ]
            },{
                title:'Cargos',
                layout:'column',
                border:false,
                defaults: {border:false},
//                layoutConfig : {columns : 7},
                items: [{  	html: 'Monto: $',
						   	width:60,
						   	bodyStyle:funExtJS.styleFONT+'text-align:left;padding:5px 5px 5;'
						},{xtype:'textfield',
                        id:'montoCargo',
	                    fieldLabel: 'Monto: $',
	                    name: 'montoCargo',
	                    anchor:'50%',
	                    selectOnFocus:true,
					   	value:'0.00',
					   	style:'text-transform:uppercase;',
					   	listeners:{
							blur :function(o){
								formateaImporteMoneda('montoCargo','CAMPO');
							}
						}
	                },{
						   	html: 'Impuesto: $',
						   	width:80,
						   	bodyStyle:funExtJS.styleFONT+'text-align:right;padding:5px 5px 5;'
						},{ xtype:'textfield',
	                        id:'montoCargoImpuesto',
		                    fieldLabel: 'Impuesto: $',
		                    name: 'montoCargoImpuesto',
		                    anchor:'50%',
		                    selectOnFocus:true,
						   	value:'0.00',
						   	style:'text-transform:uppercase;',
		                    listeners:{
								blur :function(o){
									formateaImporteMoneda('montoCargoImpuesto','CAMPO');
								}
							}
	                },{  	html: ' ',
						   	width:50,
						   	bodyStyle:funExtJS.styleFONT+'text-align:left;padding:0px 0px 0;'
						},{
							xtype:'button',
							id: 'btnCargo',
							text:'Aplicar Cargo',
		                    handler: function(){

		                    	
								   	//verifica si se selecciono algun renglon
							   		selectecRow = gpRentas.getSelectionModel().getSelected();
							   		
							   		var montoCargo = eliminaComas(Ext.getCmp('montoCargo').getValue(), 'IMPORTE');
							   		var montoCargoImpuesto = eliminaComas(Ext.getCmp('montoCargoImpuesto').getValue(), 'IMPORTE');
							   		
							    	if(selectecRow){
							  
							    		// Ext.MessageBox.confirm('Confirm', 'Are you sure you want to do that?', showResult);
						 				Ext.MessageBox.buttonText.ok = "SI"; 
						 				Ext.MessageBox.buttonText.cancel = "Cancelar";
											Ext.MessageBox.show({
								           	title: 'Confirmación',
								 			msg: 'Desea agregar el cargo a la renta seleccionada?',
								           	width:300,
								           	buttons: Ext.MessageBox.OKCANCEL,
								           	OK:'SI',
								           	animEl: 'gpRentas',
								           	fn: function(buttonClicked,text) {
								    	       	if(buttonClicked == 'ok') {
								    	       		//eliminaEjecutivo
								    					
							             	    	if(typeof(selectecRow.data.idRenta) != "undefined" ){
							             	    		if(montoCargo <= 0){
							             	    			alert('No se pueden realizar cargos por valores negativos o cero');
							             	    			return;
							             	    		}
							              	    		
							              	    		com.mexcad.segCredito.idRenta=selectecRow.data.idRenta;
							             	    		com.mexcad.segCredito.numRenta=selectecRow.data.numRenta;
							             	    		com.mexcad.segCredito.ejecutaAgregarCargo(selectecRow ,montoCargo,montoCargoImpuesto );
							             	    		
													}
										   			
								    			}
								    		}	           
							       		});
								   	}else{
								   		funExtJS.alert("Debe seleccionar un campo para realizar el pago de la renta por " + Ext.getCmp('montoPago').getValue(), Ext.MessageBox.INFO);
								    	return;
									}
								
		                    	
				            }
						}  ]
            }]
        }
    });

        
    
    	function statusChange(val){
		
			var status = com.mexcad.segCredito.jsonrpc.DelegateConnectors.getEstatusCreditoRentaPorId(parseInt(val));
		
	        if(val == 4 ){
	            return '<span style="color:black;">' + status + '</span>';
	        }else if(val == 5){
	            return '<span style="color:blue;">' + status + '</span>';
	        }else if(val == 6){
	            return '<span style="color:red;">' + status + '</span>';
	        }else if(val == 8){
	            return '<span style="color:blue;">' + status + '</span>';
	        }
	        return val;
   }
	
   
    
	dsRentas = new Ext.data.Store({
        reader: new Ext.data.ArrayReader({}, [
              {name: 'idRenta'},
               {name: 'idCredito'},
               {name: 'idEstatus'},
               {name: 'numRenta'},
               {name: 'fechaAplicacionStr'},
               {name: 'fechaExigibleStr'},
               {name: 'fechaRegistroStr'},
               {name: 'idTipoRenta'},
               {name: 'descripcion'},
               {name: 'cargo'},
               {name: 'abono'},
               {name: 'saldo'}
          ])
    });
							
    function renderTopic(value, p, record){
    	
        return String.format(
                '<b><a href="http://extjs.com/forum/showthread.php?t={2}" target="_blank">{0}</a></b><a href="http://extjs.com/forum/forumdisplay.php?f={3}" target="_blank">{1} Forum</a>',
                value, record.data.forumtitle, record.id, record.data.forumid);
    }

    
    dsRentas.loadData(arrayData);
 
        var colModel = new Ext.grid.ColumnModel([
        {id:'numRenta',header: "Renta ", width: 40, sortable: true, dataIndex: 'numRenta'},
        {header: "fecha Registro", width: 80, sortable: true, dataIndex: 'fechaRegistroStr'},
        {header: "fecha Exigible", width: 80, sortable: true, dataIndex: 'fechaExigibleStr'},
        {header: "Estatus", width: 85, sortable: true, renderer: statusChange, dataIndex: 'idEstatus'},
        {header: "Cargo", width: 70, sortable: true,  dataIndex: 'cargo',renderer: 'usMoney'},
        {header: "Abono", width: 70, sortable: true,  dataIndex: 'abono_'},
        {header: "Saldo", width: 70, sortable: true,  dataIndex: 'saldo',renderer: 'usMoney'}
        
    
        
    ]);
    
    
	var gpRentas = new Ext.grid.EditorGridPanel({
			id:'gpRentas',
			title: 'Listado de rentas',
			store: dsRentas,	
			width: 700,
			height:240,
			clicksToEdit:1,
			cm:colModel,
			frame:false,
			border: true,
			enableColumnResize :false,
			
			viewConfig: {
				            forceFit:true,
				            enableRowBody:true,
				            showPreview:true,
				            getRowClass : function(record, rowIndex, p, store){
				                if(this.showPreview){
				                    p.body = '<p>'+com.mexcad.segCredito.muestraCargosyPagos(record.data.idCredito, record)+'</p>';
				                    return 'x-grid3-row-expanded';
				                }
				                return 'x-grid3-row-collapsed';
				            }
			        	},
        	
			selModel: new Ext.grid.RowSelectionModel({singleSelect:true}),
			tbar: [{
					text: 'Borrar',
					id:'btnBorrarRenta',
					iconCls: 'erase',
				    handler : function(){
					   	//verifica si se selecciono algun renglon
				   		selectecRow = gpRentas.getSelectionModel().getSelected();
				    	if(selectecRow){
				  
				    		// Ext.MessageBox.confirm('Confirm', 'Are you sure you want to do that?', showResult);
			 				Ext.MessageBox.buttonText.ok = "SI"; 
			 				Ext.MessageBox.buttonText.cancel = "Cancelar";
								Ext.MessageBox.show({
					           	title: 'Confirmaci�n',
					 			msg: 'Desea eliminar la renta seleccionada?',
					           	width:300,
					           	buttons: Ext.MessageBox.OKCANCEL,
					           	OK:'SI',
					           	animEl: 'gpRentas',
					           	fn: function(buttonClicked,text) {
					    	       	if(buttonClicked == 'ok') {
					    	       		//eliminaEjecutivo
					    				
				             	    	if(typeof(selectecRow.data.idRenta) != "undefined" ){
				              	    		var status = com.mexcad.segCredito.jsonrpc.DelegateConnectors.consultaStatusRentaParaBorrardo(selectecRow.data.idRenta);
				             	    		if(status < 0 ||status == 5){
				             	    			alert('No puede ser eliminada esta renta porque tiene un estatus PAGADO o tiene abonos realizados');
				             	    		}else{
				             	    			com.mexcad.segCredito.eliminaRenta(selectecRow);
				             	    	
				             	    		}
				             	    			
				             	    	//	
					        			
										}
							   			
					    			}
					    		}	           
				       		});
					   	}else{
					   		funExtJS.alert("Debe seleccionar un campo para eliminarlo", Ext.MessageBox.INFO);
					    	return;
						}
					}
			},{
					text: 'Pagar',
					id:'btnPagarRenta',
					iconCls: 'add',
				    handler : function(){
					   	//verifica si se selecciono algun renglon
				   		selectecRow = gpRentas.getSelectionModel().getSelected();
				   		
				   		var monto = eliminaComas(Ext.getCmp('montoPago').getValue(), 'IMPORTE');
				    	if(selectecRow){
				  
			    		var status = com.mexcad.segCredito.jsonrpc.DelegateConnectors.consultaStatusRentaConSaldo(selectecRow.data.idRenta);
				            var statusStr='';
				            if(status < 0 ||  status == 5 ){
				             	statusStr=' ya ha sido pagada';
				            }
				    		// Ext.MessageBox.confirm('Confirm', 'Are you sure you want to do that?', showResult);
			 				Ext.MessageBox.buttonText.ok = "SI"; 
			 				Ext.MessageBox.buttonText.cancel = "Cancelar";
								Ext.MessageBox.show({
					           	title: 'Confirmación',
					 			msg: 'Desea pagar la renta seleccionada? '+statusStr,
					           	width:300,
					           	buttons: Ext.MessageBox.OKCANCEL,
					           	OK:'SI',
					           	animEl: 'gpRentas',
					           	fn: function(buttonClicked,text) {
					    	       	if(buttonClicked == 'ok') {
					    	       		//eliminaEjecutivo
					    					
				             	    	if(typeof(selectecRow.data.idRenta) != "undefined" ){
				             	    		if(monto <= 0){
				             	    			alert('No se pueden realizar pagos por valores negativos o cero');
				             	    			return;
				             	    		}
				              	    			
				             	    			com.mexcad.segCredito.idRenta=selectecRow.data.idRenta;
				             	    			com.mexcad.segCredito.numRenta=selectecRow.data.numRenta;
				             	    			
				             	    			com.mexcad.segCredito.ejecutaPagoRenta(selectecRow ,monto);
				             	    		
				             	    		
				             	    		
					        			
										}
							   			
					    			}
					    		}	           
				       		});
					   	}else{
					   		funExtJS.alert("Debe seleccionar un campo para realizar el pago de la renta por " + Ext.getCmp('montoPago').getValue(), Ext.MessageBox.INFO);
					    	return;
						}
					}
			},{
					text: 'Refrescar',
					id:'refrescar',
					iconCls:'table-refresh',
				    handler : function(){
					   	//verifica si se selecciono algun renglon
				   		location='seguimientoCredito.jsp?identificador=' + com.mexcad.segCredito.idCredito;
					}
			},{
					text: 'Pago anticipado',
					id:'btnPagoAnticipado',
					iconCls: 'add',
				    handler : function(){
					   		
			 				Ext.MessageBox.buttonText.ok = "SI"; 
			 				Ext.MessageBox.buttonText.cancel = "Cancelar";
								Ext.MessageBox.show({
					           	title: 'Confirmaci�n',
					 			msg: '�Desea pagar el cr�dito anticipadamente?',
					           	width:300,
					           	buttons: Ext.MessageBox.OKCANCEL,
					           	OK:'SI',
					           	animEl: 'gpRentas',
					           	fn: function(buttonClicked,text) {
					    	       	if(buttonClicked == 'ok') {
					    	       		
					    				var montoAnticipadoTxt=eliminaComas(Ext.getCmp('montoPago').getValue(), 'IMPORTE');
					    				if(formateaMoneda(com.mexcad.segCredito.montoAnticipado) != formateaMoneda(montoAnticipadoTxt)){
					    					alert("el monto del pago debe ser de: "+formateaMoneda(com.mexcad.segCredito.montoAnticipado));
					    					return;
					    				}else{
					    					com.mexcad.segCredito.ejecutaPagoAnticipado(montoAnticipadoTxt);
					    				}
					    	       		
					    			}
					    		}	           
				       		});
				    	
					}
			},{
					text: 'Reversar Pago',
					id:'btnBorrarPago',
					iconCls: 'erase',
				    handler : function(){
					   	//verifica si se selecciono algun renglon
				   		selectecRow = gpRentas.getSelectionModel().getSelected();
				    	if(selectecRow){
				  
				    		Ext.MessageBox.buttonText.ok = "SI"; 
			 				Ext.MessageBox.buttonText.cancel = "Cancelar";
								Ext.MessageBox.show({
					           	title: 'Confirmaci�n',
					 			msg: 'Desea reversar el pago seleccionado?',
					           	width:300,
					           	buttons: Ext.MessageBox.OKCANCEL,
					           	OK:'SI',
					           	animEl: 'gpRentas',
					           	fn: function(buttonClicked,text) {
					    	       	if(buttonClicked == 'ok') {
					    	       		//eliminaEjecutivo
					    				
				             	    	if(typeof(selectecRow.data.idRenta) != "undefined" ){
				              	    		var status = com.mexcad.segCredito.jsonrpc.DelegateConnectors.consultaStatusPagoParaBorrardo(selectecRow.data.idRenta, com.mexcad.segCredito.idCredito);
				             	    		if(status < 0 ){
				             	    			alert('No puede ser eliminado el pago.');
				             	    		}else{
				             	    			com.mexcad.segCredito.reversarPago(selectecRow);
				             	    	
				             	    		}
				             	    			
				             	    	//	
					        			
										}
							   			
					    			}
					    		}	           
				       		});
					   	}else{
					   		funExtJS.alert("Debe seleccionar un pago para eliminarlo", Ext.MessageBox.INFO);
					    	return;
						}
					}
			}]

		});

		
		
	

    
    var fsf = new Ext.Panel({
        	//collapsible: false,
        	defaults: {bodyStyle : 'padding:0px 0px 0;', border : false},
     		items: [{ //
				layout: 'table',
				//colspan:5,
				boder:false,
			   	defaults : {bodyStyle : 'padding:0px 0px 0;', border : false},
		    	layoutConfig: {columns: 1},
		    	items:[panelSuperior,panelCentral,gpRentas]
			}]
		});
		fsf.render(document.body);
		
	Ext.getCmp('btnPagoAnticipado').setDisabled(true);
	Ext.getCmp('btnPagarRenta').setDisabled(false);

    $('header').innerHTML =com.mexcad.segCredito.generaHeader();
    if(credito!= null ){
    	if(credito.idEstatus == 2 ||credito.idEstatus == 3 || credito.idEstatus == 9){
    		Ext.getCmp('btnPagoAnticipado').setDisabled(true);
			Ext.getCmp('btnPagarRenta').setDisabled(true);
			Ext.getCmp('pagoAnticipado').setDisabled(true);
			Ext.getCmp('btnBorrarRenta').setDisabled(true);
			Ext.getCmp('btnCargo').setDisabled(true);
			
			
    	}
    }
    
    
    
});// termina OnReady






















